/*******************************************************************************
* Имя файла: eightTask.h
* Дата: 29-05-2024
* Разработчик: Андрей Подлегаев
* Группа: 315
* Факультет: ЦДО ТУСУР
* Лицензия: BSD
* Описание: Решение задач к лабораторной работе №7 (ЦДО ТУСУР)
* *****************************************************************************/
#ifndef ONETASK_H
#define ONETASK_H

#include <iostream>
#include <algorithm>

#include "colorConsole.h"

struct Numbers {

/* Структура дроби */
  struct Fraction {
    int numerator;
    int denominator;
  };

/* Структура комплексного числа */
  struct Complex
  {
    int Re;
    int Im;
  };
};

/* Прототип функции получения дроби */
Numbers::Fraction getFraction();

/* Прототип функции получения комплексного числа */
Numbers::Complex getComplex();

/* Прототип функции вывода в консоль */
void printResult(const double& composition);

/* Прототип функции вывода комплексного числа в консоль */
void printResult(const Numbers::Complex& composition);

/* Прототип функции расчёта произведения дробей */
double multiply(void* xNumberOne, void* xNumberTwo);

/* Прототип функции расчёта произведения дробей */
double multiply(const Numbers::Fraction& xFractionOne,
                const Numbers::Fraction& xFractionTwo);

/* Прототип функции расчёта произведения комплексных чисел */
Numbers::Complex multiplyComplex(void* xComplexOne, void* xComplexTwo);

/* Прототип функции расчёта произведения комплексных чисел */
Numbers::Complex multiply(const Numbers::Complex& xComplexOne,
                          const Numbers::Complex& xComplexTwo);

#endif // ONETASK_H
